﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace com.iot.core.exception
{
    public class MyException : Exception
    {
        public int code { get; set; } = 0;
        public string msg { get; set; } = "";

        public Exception ex { get; set; } = null;

        public MyException(ExceptionEnum exceptionEnum):this( (int)exceptionEnum)
        {
        }
        public MyException(ExceptionEnum exceptionEnum,string Msg) : this((int)exceptionEnum)
        {
            this.msg = msg;
        }         

        public MyException(int code)
        {
            this.code = code;
            switch (code)
            {
                case 0:
                    msg = "";
                    break;
                case 10:
                    msg = "参数错误";
                    break;
                case 99:
                    msg = "未知异常";
                    break;
                case 100:
                    msg = "已知异常";
                    break;
                case 401:
                    msg = "未授权";
                    break;

            }

        }
        public MyException(string msg)
        {
            code = 100;//已知
            this.msg = msg;
        }
        public MyException(int code, string msg)
        {
            this.code = code;//已知
            this.msg = msg;
        }
        public MyException(Exception exception)
        {
            code = 99;
            msg = "未知异常";
            ex = exception;
        }


    }
}
